package com.wdb007.venus.svc.dal.book.dao;

import java.util.Date;
import java.util.List;

import com.wdb007.venus.svc.dal.book.model.BookEntityDO;
import com.wdb007.venus.svc.dal.book.model.BookGridInfoDO;
import com.wdb007.venus.svc.dal.book.model.BookGridPageDO;
import com.wdb007.venus.svc.dal.book.model.BookQueryPageDO;
import com.wdb007.venus.svc.dal.book.model.BookShelfAndIsbnDO;
import com.wdb007.venus.svc.dal.book.model.BorrowedBookDO;
import com.wdb007.venus.svc.dal.book.model.PutonCountQueryDO;

public interface BookEntityDAO {
    int remove(String rfidCode);

    int insert(BookEntityDO record);

    BookEntityDO get(String rfidCode);

    int update(BookEntityDO record);
    
    List<String> getRfidcodes(String gridCode);
    
    Date getLastestPutonDate(String shelfCode);
    
    int getPutonCount(PutonCountQueryDO query);
    
    List<BorrowedBookDO> getPutonList(PutonCountQueryDO query);

	List<BorrowedBookDO> queryBookList(BookQueryPageDO bookQueryPageDO);

	int countBookByCondition(BookQueryPageDO bookQueryPageDO);
	
	List<BorrowedBookDO> queryGridBooks(BookGridPageDO pageDO);
	
	int countGridBooks(BookGridPageDO pageDO);
	
	 List<BorrowedBookDO> getRankBookList(PutonCountQueryDO query);	
	 
	 int countRankBookList(PutonCountQueryDO query);
	
	 int queryStoredCount(String shelfCode);
	 
	 List<BookGridInfoDO> getBookGrids(String shelfCode);
	 
	 String getGridCodeByIsbn(BookShelfAndIsbnDO shelfAndIsbn);
	 
	 int getBookCaseTotalCount(String shelfCode);
	 
	 int getBookGridTotalCount(String gridCode);
}